package com.xiaoy.core.workflow.engine;

import java.io.InputStream;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipInputStream;

import com.xiaoy.core.workflow.engine.entity.CreateProcessVO;
import com.xiaoy.core.workflow.engine.entity.ProcessDefine;
import com.xiaoy.core.workflow.engine.entity.ProcessInstantiate;


/**
 * 提供流程接口的api,屏蔽各种流程引擎 
 * @author chenty
 * 创建时间 2012-5-9
 */
public interface WorkFlow {

	/**
	 * 删除一个部署的流程
	 * @param deploymentId
	 */
	public void delete (String id) ;
	
	/**
	 * 得到一个部署流程的详细信息
	 * @param id
	 * @return
	 */
	public ProcessDefine getProcessDefineById(String id);
	
	/**
	 * 获得所有发布了的流程
	 * 
	 * @return
	 */
	public List<ProcessDefine> getAllProcessDefinitions();
	
	
	/**
	 * 开始一个流程实例
	 * 
	 * @param id 部署的流程的流程id
	 * @param map 流程变量
	 * @return 
	 */
	public ProcessInstantiate createProcessInstanceById(CreateProcessVO createProcessVO);
	
}
